The present invention relates to processing graphical input in computer applications.
Many computer applications receive and process graphical input, i.e., input values that specify locations in an input space having two or more dimensions. For example, with a pointing device, such as a mouse, a trackball, or a stylus, a user can generate graphical input in a two-dimensional space corresponding to a display screen. The generated graphical input is typically described in units corresponding to pixels of the screen.
The graphical input can be used to interact with a user. For example, a computer application can display one or more menu items on a screen and receive graphical input from a pointing device to select one of the displayed items. In addition, graphical input can specify a path in the input space. For example in drawing and painting applications, a user can draw or paint a path by specifying a sequence of input points, e.g., by moving a mouse or a stylus. The drawing or painting application can define the path based on the sequence of input points. For example, the application can fit a curve on the input points, interpolate between two subsequent input points, or filter the input points to define the path.
The defined path can be further processed by the same or another application. For example, a drawn path can be displayed on the screen in a drawing application, and a user-assisted partial undo can be effected by allowing a user to press a control key to indicate that future graphical input will be for path-deletion operations. In addition, graphical input can be processed to infer backward motion by calculating path directions at different input points using a few other input points that precede and/or follow the input points of interest.
Processing graphical input is particularly important in handheld devices, such as personal digital assistants (“PDA”), that use pointing devices, e.g., a stylus, to receive user input. Often, these devices rely mostly on graphical input and have only a limited keyboard or no keyboard at all. For example, a PDA can use a virtual keyboard, i.e., a keyboard that is displayed on the screen. In addition, most PDAs can process graphical input, such as handwriting.